Android : 高通平台Camera调试之SetpropKey/camxoverridesettings.txt |
您所在的位置:网站首页 › chromatix download › Android : 高通平台Camera调试之SetpropKey/camxoverridesettings.txt |
高通相关网址:Createpoint: https://createpoint.qti.qualcomm.com(可下载文档,Release Note等)Chipcode: https://chipcode.qti.qualcomm.com(下载私有代码)开源代码: https://www.codeaurora.org/xwiki/bin/QAEP/release(下载开源代码)Case和文档: https://support.cdmatech.com(Case,文档,工具等) 高通网站 image 转换工具:https://cap.qti.qualcomm.com/default.aspx 调试平台信息:【SDM845/670】 以下为参考用例,具体请以 sdm845_caf\vendor\qcom\proprietary\camx\src\core\camxsettings.xml 为准!!!
1.LOG信息相关: --AF相关LOG控制--例: setprop persist.vendor.camera.logInfoMask 0x8000000 //AF info level log setprop persist.vendor.camera.logVerboseMask 0x8000000 //AF verbose level log adb shell "echo logInfoMask=0x8000000 >> /vendor/etc/camera/camxoverridesettings.txt" adb shell "echo logVerboseMask=0x8000000 >> /vendor/etc/camera/camxoverridesettings.txt" Mask值对应如下:(1 > /vendor/etc/camera/camxoverridesettings.txt"(5)启用GPU Node Rotation Usecase vendor.debug.camera.overrideGPURotationUsecase adb shell "echo overrideGPURotationUsecase=1 >> /vendor/etc/camera/camxoverridesettings.txt"(6)强制使用不带3A的HFR Usecase vendor.debug.camera.overrideHFRNo3AUseCase adb shell "echo overrideHFRNo3AUseCase=1 >> /vendor/etc/camera/camxoverridesettings.txt"(7)允许使用AdvancedCameraUsecase vendor.debug.camera.overrideUseAdvancedUsecase adb shell "echo overrideUseAdvancedUsecase=0 >> /vendor/etc/camera/camxoverridesettings.txt"(8)开启 EIS V2/V3 vendor.debug.camera.eisv2enable adb shell "echo EISV2Enable=1 >> /vendor/etc/camera/camxoverridesettings.txt" vendor.debug.camera.eisv3enable adb shell "echo EISV3Enable=1 >> /vendor/etc/camera/camxoverridesettings.txt"(9) EIS V2/V3 Margin vendor.debug.camera.eisv2margin adb shell "echo EISV2Margin=0.4 >> /vendor/etc/camera/camxoverridesettings.txt"vendor.debug.camera.eisv3marginadb shell "echo EISV3Margin=0.4 >> /vendor/etc/camera/camxoverridesettings.txt"(10)EIS V2/V3 Frame Delay vendor.debug.camera.eisv2framedelay adb shell "echo EISV2FrameDelay=1 >> /vendor/etc/camera/camxoverridesettings.txt" vendor.debug.camera.eisv3framedelay adb shell "echo EISV3FrameDelay=1 >> /vendor/etc/camera/camxoverridesettings.txt"(11)Number of PCRs before stream on vendor.debug.camera.numPCRsBeforeStreamOn adb shell "echo numPCRsBeforeStreamOn=1 >> /vendor/etc/camera/camxoverridesettings.txt"(12)图像 Buffer Count Override (初始化期间分配的图像buffer计数,默认值8) vendor.debug.camera.overrideImageBufferCount adb shell "echo overrideImageBufferCount=7 >> /vendor/etc/camera/camxoverridesettings.txt"(13)Stats Frame Skipping 【0: invalid. 2: skip 1 frame. 3: skip 2 frames】 vendor.debug.camera.statsProcessingSkipCount adb shell "echo statsProcessingSkipFactor=2 >> /vendor/etc/camera/camxoverridesettings.txt
3.获取raw 和 metadata 用于ISP调试 (1) Enable Dump adb shell setprop persist.vendor.camera.imageDumpMask 6 ->No dumps = 0x0 ->All output ports for IFE = 0x1 ->All output ports for IPE = 0x2 ->All output ports for BPS = 0x4 adb shell setprop persist.vendor.camera.offlineImageDumpOnly 1 adb shell setprop persist.vendor.camera.reprocessDump 1 adb shell setprop persist.vendor.camera.autoImageDump 1adb shell setprop persist.vendor.camera.autoImageDumpIPEoutputPortMask 0x100 Output port mask for IPE: IPEOutputPortDisplay = 0x100; IPEOutputPortVideo = 0x200; IPEOutputPortFullRef = 0x400; IPEOutputPortDS4Ref = 0x800; IPEOutputPortDS16Ref = 0x1000; IPEOutputPortDS64Ref = 0x2000; ALLports = 0x3F00 adb shell setprop persist.vendor.camera.autoImageDumpIPEInstanceMask 12 IPEInstanceName0 = 0x1; IPEInstanceName1 = 0x2; IPEInstanceName2 = 0x4; IPEInstanceName3 = 0x8; IPEInstanceName4 = 0x10; IPEInstanceName5 = 0x20; IPEInstanceName6 = 0x40; IPEInstanceName7 = 0x80; IPEInstanceName8 = 0x100; IPEInstanceName9 = 0x200; IPEInstanceName10 = 0x400; IPEInstanceName11 = 0x800; IPEInstanceName12 = 0x1000; IPEInstanceName13 = 0x2000; IPEInstanceName14 = 0x4000; IPEInstanceName15 = 0x8000; IPEInstanceName16 = 0x10000; IPEInstanceName17 = 0x20000; IPEInstanceName18 = 0x40000; IPEInstanceName19 = 0x80000; IPEInstanceName20 = 0x100000; IPEInstanceName21 = 0x200000; AllInstances = 0xFFFFFFFF adb shell setprop persist.vendor.camera.autoImageDumpIFEoutputPortMask 0x100 Output port mask: IFE: IFEOutputPortFull = 0x1; IFEOutputPortDS4 = 0x2; IFEOutputPortDS16 = 0x4; IFEOutputPortCAMIFRaw = 0x8; IFEOutputPortLSCRaw = 0x10; IFEOutputPortGTMRaw = 0x20; IFEOutputPortFD = 0x40; IFEOutputPortPDAF = 0x80; IFEOutputPortRDI0 = 0x100; IFEOutputPortRDI1 = 0x200; IFEOutputPortRDI2 = 0x400; IFEOutputPortRDI3 = 0x800; IFEOutputPortStatsRS = 0x1000; IFEOutputPortStatsCS = 0x2000; IFEOutputPortStatsIHIST = 0x8000; IFEOutputPortStatsBHIST = 0x10000; IFEOutputPortStatsHDRBE = 0x20000; IFEOutputPortStatsHDRBHIST = 0x40000; IFEOutputPortStatsTLBG = 0x80000; IFEOutputPortStatsBF = 0x100000; IFEOutputPortStatsAWBBG = 0x200000; IFEOutputPortDisplayFull = 0x400000; IFEOutputPortDisplayDS4 = 0x800000; IFEOutputPortDisplayDS16 = 0x1000000; IFEOutputPortStatsDualPD = 0x2000000; ALLports = 0x3FFBFFF AllPixelOutput = 0x1C00047 AllRawOutput = 0xFB8 AllRDIOutput = 0xF00 AllStatsOutput = 0x3FB000 adb shell setprop persist.vendor.camera.autoImageDumpIFEInstanceMask 0x7 Instance mask: IFE: IFEInstanceName0 = 0x1; IFEInstanceName1 = 0x2; IFEInstanceName2 = 0x4; AllInstances = 0x7或 adb shell "echo autoImageDumpMask=6>>/vendor/etc/camera/camxoverridesettings.txt" adb shell "echo offlineImageDumpOnly=TRUE>>/vendor/etc/camera/camxoverridesettings.txt" adb shell "echo reprocessDump=TRUE >>/vendor/etc/camera/camxoverridesettings.txt" adb shell "echo autoImageDump=TRUE>>/vendor/etc/camera/camxoverridesettings.txt"...
生成路径:data/misc/camera/ 或 data/vendor/camera/ 使用Chromatix 工具查看: ① *.RAWMIPI → rename to *.RAW, *.YUV420NV21 → Rename to *.YUV ② RAW → BPP 10, pack: mipi pattern: RGGB YUV → BPP 8, Sub-sample: Ycbcr420, Format: Semi-Planar 开启dump后预览会比较卡,可以修改dump部分代码(/src/utils/camximagedump.cpp b/src/utils/camximagedump.cpp),过滤特定格式缓解卡顿: #include "camximagedump.h" #include "camximagebuffer.h" #include "camximageformatutils.h" #include CAMX_NAMESPACE_BEGIN @@ -99,6 +100,28 @@ VOID ImageDump::Dump( OsUtils::SNPrintF(suffix, sizeof(suffix), "ERROR"); break; } +// add format mask + char value[100] = "\0"; + static int nFirstTime = 1; + static int nDumpMask = 0; + if(nFirstTime) + { + property_get("persist.camera.dump.formatmask", value, "0"); + nFirstTime = 0; + nDumpMask=atoi(value); + } + if(nDumpMask > 0) + { + if(static_cast(pDumpInfo->pFormat->format) != nDumpMask) + { + CAMX_LOG_ERROR(CamxLogGroupUtils, "stop dump format: %d, only dump format: %d\n", pDumpInfo->pFormat->format, nDumpMask); + return; + } + } + +//然后可以参考 “camxformats.h”中的掩码定义dump指定的图像格式: adb shell setprop persist.camera.dump.formatmask 15 // dump YUV420NV12TP10
(2)将 TP10 转换成 YUV 10bit 格式 dump到大量TP10格式的YUV文件后,模拟器不能直接支持TP10格式,需要使用Chromatix 7将其转换为Yuv420_10bit的格式,转换步骤如下: 1.打开chromatix 7并打开您的项目。 2.选择视频场景( video Scenario)。 3.打开TF界面,检查宽度和高度。TF界面中显示的宽度和高度应与文件名中的宽度和高度完全相同。(xxxx[WW]_[HH]xxxx.YUV420NV12TP10)如果不相同,请先更正。 3.1 你需要关闭Chromatix7. 然后进入Chromatix7 工程目录。 3.2 打开并修改 sensorData.txt 中的宽和高。(C7project\Scenario.Default\Sensor.0\Usecase.Video\sensorData.txt,路径取决于您使用的场景) 3.3 修改以下两行并保存,然后再执行第3步。 2036, /* raw image width */ 1144, /* raw image height */4. 点击 “TP10 to Planar” 并选择重命名的yuv文件,您只需要选择xxx_0.yuv,工具就可以找到剩余的文件,然后选择输出文件夹。 5. 等几秒钟,您就可以得到输出名如 xxx_pln_0.YUV, xxx_pln_1.YUV … 的文件,所有的tp10文件都被转换了。
(3) Get Meta 步骤: ① 设备开启meta ② 拍照获得jpeg ③ 通过C7获取meta (QualcommSpectraSim280.exe - metaparsetest.jpg -》 C7\Simulator\Spectra280\) adb shell "echo tuningDumpDataSizeIFE=5000 >> /vendor/etc/camera/camxoverridesettings.txt"adb shell "echo tuningDumpDataSizeBPS=20000 >> /vendor/etc/camera/camxoverridesettings.txt"adb shell "echo tuningDumpDataSizeIPE=150000 >> /vendor/etc/camera/camxoverridesettings.txt
-end- |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |